System and methods for voice controlled automated computer code deployment

ABSTRACT

An automated deployment computer system for deploying code to a server is provided herein. The automated deployment computer system includes at least one processor in communication with at least one memory device. The processor is configured to: receive a voice input from a user computing device, wherein the voice input includes at least one user command, wherein the user command contains user instructions for deploying code to a first server; extract the user command from the voice input; generate deployment instructions based on the user command, wherein the deployment instructions are computer-executable instructions for causing the deployment of the code on the first server; and transmit the deployment instructions to an automation server.

BACKGROUND

The present disclosure relates generally to computer code deploymentand, more particularly, to systems and methods for automating thedeployment of computer code.

Known computer systems generally rely on manual deployment of computercode in order to update and/or alter computer software. Softwaredevelopment may involve the integration, delivery, and/or deployment ofcomputer code, all of which may be implemented manually by a developer.For example, a developer may initiate computer code integration tocompile computer code changes made by multiple developers and testwhether the computer code is functional. In some software developmentsystems, a developer may utilize an automation server as a hub for moreeasily managing computer code changes.

However, current systems for managing software development, whether ornot they include an automation server, may be limited by a reliance onmanual input from developers for effectively implementing computer codechanges. For example, a programmer or an automation server may attemptto deploy computer code on a server that has been de-activated, in whichcase the computer code deployment may have to be manually completed. Inanother example, deployed software may experience an error running on acertain server, and the error may require manual resolution. Such manualinterventions may inhibit computer systems in a number of ways. Forexample, too many code updates may be received within a given period oftime for the updates to be reliably deployed manually in a timelymanner, thus hindering efficient development and evolution of a computersystem. Additionally, manual interventions increase the chance ofintroducing human error into a computer system, potentially leading toadditional errors and bugs in the code. Further, manual code deploymentsmay decrease a computer system's security, but increase the system'sreliance on external outputs.

Accordingly, a system is needed that (i) allows for a user to easilyinteract with a computer code deployment system, (ii) automates computercode deployment in the face of potential errors, and (iii) learns tomore effectively interact with particular users.

BRIEF DESCRIPTION

The present embodiments may relate to systems and methods for automatedcomputer code deployment. The system may include an automated deployment(“AD”) computing device, a user computing device, an automation server,deployment servers, a third party applications server, and an automationdatabase.

In one aspect, an automated deployment computer system for deployingcode to a server is provided. The automated deployment computer systemincludes at least one processor in communication with at least onememory device. The processor is configured to: (i) receive a voice inputfrom a user computing device, wherein the voice input includes at leastone user command, wherein the user command contains user instructionsfor deploying code to a first server; (ii) extract the user command fromthe voice input; (iii) generate deployment instructions based on theuser command, wherein the deployment instructions arecomputer-executable instructions for causing the deployment of the codeon the first server; and (iv) transmit the deployment instructions to anautomation server.

In another aspect, a computer-implemented method for deploying code to aserver is provided. The method is implemented by a computer systemincluding at least one processor. The method comprises: (i) receiving avoice input from a user computing device, wherein the voice inputincludes at least one user command, wherein the user command containsuser instructions for deploying code to a first server; (ii) extractingthe user command from the voice input; (iii) generating deploymentinstructions based on the user command, wherein the deploymentinstructions are computer-executable instructions for causing thedeployment of the code on the first server; and (iv) transmitting thedeployment instructions to an automation server.

In another aspect, at least one non-transitory computer-readable storagemedia having computer-executable instructions embodied thereon fordeploying code to a server is provided. When executed by at least oneprocessor, the computer-executable instructions cause the processor to:(i) receive a voice input from a user computing device, wherein thevoice input includes at least one user command, wherein the user commandcontains user instructions for deploying code to a first server; (ii)extract the user command from the voice input; (iii) generate deploymentinstructions based on the user command, wherein the deploymentinstructions are computer-executable instructions for causing thedeployment of the code on the first server; and (iv) transmit thedeployment instructions to an automation server.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-10 show example embodiments, of the methods and systemsdescribed herein.

FIG. 1 illustrates a block diagram of an automated deployment (“AD”)computer system including an automated deployment (“AD”) computingdevice.

FIG. 2 illustrates a data flow within the AD computer system of FIG. 1.

FIG. 3 illustrates a data flow between modules of the AD computingdevice of FIG. 1.

FIG. 4 illustrates a data flow within a machine learning module of theAD computing device of FIG. 1.

FIG. 5 illustrates a data flow within a language module of the ADcomputing device of FIG. 1.

FIG. 6 illustrates a data flow within an instructions module of the ADcomputing device of FIG. 1.

FIG. 7 illustrates a schematic diagram of an exemplary user computingdevice, such as a user computing device that may be included in the ADcomputing system of FIG. 1.

FIG. 8 illustrates a schematic diagram of a server computing device,such as the AD computing device of FIG. 1.

FIG. 9 illustrates a flow chart of a method for automatically deployingcode using an AD computing device, such as the AD computing device ofFIG. 1.

FIG. 10 illustrates a diagram of a computer device and internalcomponents, such as those that may be found in the AD computing deviceof FIG. 1.

DETAILED DESCRIPTION OF THE DISCLOSURE

Embodiments of the present disclosure relate generally to automatedcomputer code deployment. More particularly, the present disclosurerelates to a computer system, referred to herein as an automateddeployment (“AD”) computer system, that enables voice-activated computercode deployment and utilizes machine learning to address errorsencountered during computer code deployment. The AD computer system mayreceive a voice command from a user, determine the voice commandcontains a user request to deploy certain computer code, attempt todeploy the computer code, and automatically employ alternate strategiesfor deployment in the case of encountering an error. Based on historicaldeployment data and user-specific actions, the AD computer system mayautomatically adapt over time to more effectively handle errors orunexpected scenarios in a way desirable for a particular user or groupof users.

As used herein, “software” or “computer code” or simply “code” refers toany piece of software, software application, computer program, computerapplication, computer code, fragment or fragments of computer code, asnippet or snippets of code, and/or any computer-executable instructionsthat may be implemented by a computer processor. In particular, thesoftware may be “deployed” on a computer server or computer processor.As used herein, “deploy” refers to a general process including any of anumber of activities related to implementing and running software on acomputer server. These activities may include but are not limited tointegration, release, installation, activation, and/or configuring orcreating virtual machines.

The methods and systems described herein are implemented using theautomated deployment (“AD”) computer system that includes at least anautomated deployment (“AD”) computing device in communication with adeployment server. The deployment server is any server capable ofreceiving and running software. The AD computing device includes one ormore processors and a memory, which may include a centralized ornon-centralized database. The AD computing device is configured todeploy software on the deployment server and further configured tocommunicate with the deployment server, for example, to check the healthof the deployment server or the status of deployed software.

In an exemplary embodiment, the AD computer system may further include auser computing device, an automation server, a third party applicationsserver, and an automation database, all of which are in communicationwith the AD computing device. The user computing device is a computingdevice, such as a virtual assistant or smart home device, that isconfigured to transmit user input to the AD computing device and receiveoutput data sent from the AD computing device. The automation server isany application or server that enables the manipulation of objectsimplemented in another application, in this case enabling the deploymentof software on a given server. The automation server is configured tocommunicate with and manage the deployment server and in someembodiments, act as an intermediary between the AD computing device andthe deployment server. The third party applications server is configuredto receive instructions from the AD computing device for communicatingwith a plurality of third party applications. The automation database isconfigured to store data from external sources for use by the ADcomputing device and/or to store data sent from the AD computing device.

As used herein, “virtual assistant” or “smart home device” refer to anyvirtual assistant, chatbot, smart home device, voice controlledcomputing device, and/or voice service including, but not limited to,AMAZON ECHO, ALEXA, CORTANA, GOOGLE HOME, and SIRI. As used herein,“automation server” refers to any application or server that enables themanipulation of objects implemented in another application, and mayinclude, but is not limited to, software such as JENKINS and BAMBOO.Further, as used herein, “third party applications” refer to anyadditional software or applications in communication with the ADcomputing device and/or automation server, including, but not limitedto, messaging applications such as SLACK, JABBER, SKYPE, or OUTLOOK, andother applications such as STACKOVERFLOW or GITHUB.

In the exemplary embodiment, the AD computing device receives a voiceinput from the user computing device. The voice input may include, forexample, a user-instruction to deploy software A on server B.Specifically, the user may speak the phrase “Deploy A on B” into a usercomputing device, such as a virtual assistant or smart home device, andan audio file for “Deploy A on B” is received by the AD computingdevice. The AD computing device is configured to interpret the voiceinput by converting it to text and assigning meaning to the text. In thecurrent example, the AD computing device may convert the audio of“Deploy A on B” into text, process the text using a machine learningmodel, and determine that the user is requesting the deployment ofsoftware A on server B. The AD computing device may then generatecomputer-executable instructions for carrying out the user-instructionand transmit the instructions to the deployment server or the automationserver. In the above example, the AD computing device may generateinstructions which cause the automation server to deploy software A onserver B. Additionally, the AD computing device is configured togenerate instructions for carrying out a task on a third partyapplication and transmit the instructions to a third party applicationsserver. In one example, the AD computing device may generateinstructions which cause the third party applications server to send amessage over a third party application any time a deployment request ismade.

In the exemplary embodiment, the AD computing device is furtherconfigured to receive a response from the automation server, deploymentserver, and/or third party applications server, and take further actionbased on the response. The AD computing device is further configured togenerate a notification asking for user input to the user computingdevice, and transmit the notification to the user computing device. TheAD computing device receives a user-response from the user computingdevice, and generates and transmits a revised instruction based on theuser-response. In one example, the AD computing device receives an errormessage from the automation server indicating that the specified server,server B, is offline. The AD computing device may generate and transmita message asking how the user would like to proceed, and receives aresponse from the user indicating that the user would like the softwaredeployed on server C instead of server B. The AD computing device maythen generate and transmit instructions to the automation server thatcause the automation server to deploy code A on server C. In theexemplary embodiment, the AD computing device is configured to generatenotifications for users, receive user input, and generate revisedinstructions in response to receiving a response from the third partyapplication server as well.

In the exemplary embodiment, the AD computing device is furtherconfigured to generate computer-executable instructions, such asdeployment instructions and revised instructions, using machine learningmodels. In one embodiment, the AD computing device determines the textinput and meaning for a voice input, and the AD computing devicedetermines specific computer-executable instructions for implementingthe voice input based on a machine learning model. In anotherembodiment, the AD computer device receives a response from theautomation server, deployment server, and/or third party applicationsserver, and determines what action to take based on a machine learningmodel. In another embodiment, the AD computer device utilizesuser-responses, such as a command to deploy to server C when server B isoffline, to more effectively respond to subsequent error messagesreceived from the application server, deployment server, and/or thirdparty applications server. For example, the AD computer device maygenerate instructions based on a machine learning model that has beentrained from historical data. The AD computer device may further receivean error message from an automation server and, using a machine learningmodel, determine that a notification should be sent to the user askingfor input. After receiving the user-input, the AD computing device mayupdate one or more machine learning models in order to incorporate theuser's response, thereby creating a machine learning model customized tothe user and more able to handle subsequent errors.

In the exemplary embodiment, the AD computing device receives a voiceinput from the user computing device. The AD computing device furtherreceives machine learning (“ML”) data, language data, and system datafrom the automation database. Based on the voice input, ML data,language data, and system data, the AD computing device generatesdeployment instructions for deploying software on the deployment serverand transmits the deployment instructions to the automation server. TheAD computing device receives application response data from theautomation server, and based on the application response data, ML data,and system data, generates revised instructions and transmits therevised instructions to the automation server. In some embodiments, theAD computing device also generates third party application instructionsbased on the voice input, ML data, language data, system data, and/orapplication response data, and transmits the third party applicationinstructions to the third party applications server. The AD computingdevice additionally receives application response data from the thirdparty applications server. In alternative embodiments, the AD computingdevice carries out at least one of generating deployment instructions,transmitting deployment instructions, generating revised instructions,and transmitting revised instructions with or without furtherinteraction from a user.

In the exemplary embodiment, the AD computing device receives a voiceinput from the user computing device. The voice input may be a voicecommand spoken by a user and captured by the user computing device. Insome embodiments, the voice input is a voice command spoken to a virtualassistant, chatbot, or smart home device. In other embodiments, thevoice input is a voice command simply spoken into the user computingdevice. In alternative embodiments, the voice input is pre-recorded orcomputer generated. In the exemplary embodiment, the voice inputcontains a user-command and a wake word. The wake word refers to a word,phrase, expression, sound, or any other type of audio input meant toactivate the functions of a user computing device. For example, a userinputting a voice input using a virtual assistant may start their voiceinput with the wake word “Virtual Assistant X”, which causes the usercomputing device to begin receiving the voice input.

The user-command refers to an expression of an outcome desired by theuser. The user-command may contain a specified application, auser-instruction, and/or a specified server. The user-instruction refersto a computer implemented action or outcome desired by the user. Thespecified application refers to a software program or applicationspecified by the user for carrying out the user-instruction. Thespecified server refers to a server location that may be relevant to theuser-instruction. For example, a voice input may contain a user-commandwith a user-instruction to deploy a particular piece of software on aspecified server and for the deployment to be carried out by a specificapplication. In some embodiments, the user-command does not include atleast one of a user-instruction, specified application, and/or specifiedserver, and the AD computing device is configured to utilize a machinelearning model to determine any missing components. In some embodiments,the user-command includes only a user-instruction and does not include aspecified application or specified server. For example, a user may speakthe words “Virtual Assistant X, deploy software A on server B”, and auser computing device may capture the spoken words as a voice inputwhich contains a wake word (“Virtual Assistant X”) a user-instruction(“deploy software A”) and a specified server (“server B”). As anotherexample, a user may speak the words “Tell Application Y to deploysoftware C”, and a user computing device may capture the spoken words asa voice input which contains a specified application (“Application Y”)and a user-instruction (“deploy software C”).

In some embodiments, specified applications, user-instructions, and/orspecified servers may be preceded by an identifier (e.g., “applicationX” or “server Y” or “software Z”). In other embodiments, user-commandsmay contain no identifiers for the specified applications,user-instructions, and/or specified servers, and the AD computer deviceis able to determine the elements of the user-command by analyzing thevoice input. For example, a user may speak the user-command “Deploy A onB” and the AD computing device may determine that the user-instructionsare to deploy software A on the specified-server server B. In someembodiments, a voice input may contain a mix of elements withidentifiers and elements without identifiers, and the AD computingdevice is able to effectively interpret the voice input. In theexemplary embodiment, the AD computing device employs machine learningmodels to more effectively interpret and implement voice inputs. In oneembodiment, the AD computing device is configured to respond to voiceinputs by asking for clarification. In other words, based on a voiceinput, the AD computing device may determine that more information isrequired to properly process the voice input, and the AD computingdevice may generate and transmit an output asking a user to clarify thevoice input. In some embodiments, the AD computing device requests userclarification for specific elements of the voice input, while in otherembodiments, the AD computing device may simply request that the userrepeat the voice input.

In the exemplary embodiment the AD computing device further receives MLdata, language data, and system data from the automation database. MLdata may include calibrated or uncalibrated machine learning (“ML”)models, training data, function elements, and/or machine learning (“ML)methods and algorithms. ML models, which can be calibrated oruncalibrated models, refer to decision models or functions that can beused to generate a machine learning output from a data input. Machinelearning outputs may refer to any action or decision recommended by acalibrated ML model based on a data input. Data inputs may include anydata described herein. For example, a data input may include an errormessage, and a machine learning output may include a response to theerror message. In some embodiments, an uncalibrated ML model includes adecision model or function with certain elements or coefficients thatare undefined or indeterminate. In some embodiments, a calibrated MLmodel includes a decision model or function with certain elements orcoefficients that have been defined by ML methods and algorithms basedon input training data.

Training data may vary depending on the type of model being trained, butin general, training data refers to data which can be processed by MLmethods and algorithms in order to generate function elements and defineany undefined or partially defined elements in a calibrated oruncalibrated ML model. For example, an uncalibrated ML model may includea function with a number of undefined coefficients. A supervisedlearning algorithm may process training data, determine functionelements, and define the function coefficients in the ML model based onthe function elements, thus generating a calibrated ML model. As usedherein, training data is not limited to supervised learning methods, butalso includes data used to develop ML models using unsupervised orreinforcement learning methods. Training data may include any of thedata discussed herein, particularly language data and system data(described in more detail below).

Language data may include natural language processing (“NLP”) models,language parsing models, skills recognition models, grammar, vocabulary,and syntax rules, and user-specific language data. Natural languageprocessing (“NLP”) involves computer processing and/or computer analysisof spoken or written language, and may involve speech recognition,natural language understanding, and/or natural language generation. NLPmodels include but are not limited to models for translating speech totext, models for interpreting the meaning of natural language text,and/or models for translating text to speech. Language parsing modelsinclude but are not limited to models for interpreting a computercommand from natural language text. In some embodiments, languageparsing models may overlap with NLP models, such as in models forinterpreting the meaning of natural language text, which may beconsidered both an NLP model and a language parsing model. Skillsrecognition models include but are not limited to models for identifyingand executing skills specified in a voice command or text command.Skills may refer to software applications, programs, and/or othercommands or services that can be performed, implemented, or otherwiseactivated by the AD computing device to carry out a task. Grammar,syntax, and vocabulary rules refer to grammar rules, syntax rules, andvocabulary definitions that can be used to interpret a given language,and they may include any rules or data used as input for the languagemodels. User-specific language data refers to any data related to thelanguage or speech of a specific user or a specific group of users. Inparticular, user-specific language data may contain data related touser-accents, user vocabulary tendencies, user grammar and syntaxtendencies, user idiomatic tendencies, and any other language-tendenciesparticular to a user or a group of users.

As an example that demonstrates a potential relationship betweendifferent types of language data, the AD computing device may receive avoice input from a user computing device. The AD computing device mayutilize an NLP model to translate a voice input into a text input andattribute meaning to the text input, utilize a language parsing model toidentify a user-command contained within the text input, and utilize askills recognition model to identify a particular software applicationthat can be used to carry out the user-command. The three models may allrely on grammar, syntax, and vocabulary rules for carrying out theirgiven actions.

System data may include any data referring to previous data inputs, useractions, system outputs, application responses, errors, and/or computerinstructions. In particular, system data includes usage data,instructions data, application response data, and error log data. Usagedata refers to decisions, actions, and/or inputs implemented or issuedby a user or a plurality of users, all of which may or may not be inresponse to certain system inputs and/or outputs. In particular, usagedata may include voice inputs, user-commands, and/or user response data.For example, in response to an error message, a user may make a specificremedial action, and that action in response to the error message wouldbe stored as usage data. Usage data includes both specific usage dataand general usage data. Specific usage data includes usage data specificto a single user or to a specific group of users. General usage dataincludes usage data across multiple users. In one example general usagedata may be used as training data to develop a ML model for an ADcomputing device. In another example, specific usage data may be used astraining data to further develop ML models and customize the ML modelsto take into account the behaviors of a specific user or a small groupof users.

Instructions data refers to any data transmitted from the AD computingdevice to other servers, databases, or applications. In particular,instructions data includes deployment instructions, revisedinstructions, and third party application instructions. Deploymentinstructions refer to instructions transmitted by AD computing device tothe automation server or the deployment server. In the exemplaryembodiment, deployment instructions contain instructions which cause orfacilitate the automation server and/or deployment server to deployparticular software, and they may further contain a specified serveronto which the software should be deployed. In some embodiments,deployment instructions also refer to any communication sent from the ADcomputing device to the automation server and/or deployment server, suchas server health checks, server status inquiries, smoke test checks,deployment status inquiries, and any other communication sent from theAD computing device to the automation server and/or deployment server.Revised instructions refer to instructions transmitted by AD computingdevice to the automation server and/or the deployment server in responseto receiving a message from the automation server and/or the deploymentserver. In particular, revised instructions refer to any communicationsent from the AD computing device to the automation server and/ordeployment server in response to receiving application response datafrom the automation server and/or deployment server (described in moredetail below). Third party application instructions refer to anycommunication sent from the AD computing device to the third partyapplications server and/or any third party applications.

Application response data refers to any data received from third partyapplications, a third party application server, a deployment server, anautomation server, an automation database, and/or any other server. Inthe exemplary embodiment, application response data includes serverstatus data, server response messages, and third party applicationresponses. Server status data refers to the health or status of aserver, which may include server activity levels (e.g., “on” or “off”),server capacity (e.g., “full”, “nearly full”, “half-capacity”, “amplecapacity”, etc.), or other indicators of a server's status. In someembodiments, the server status data includes indicators of deploymentprogress, estimated deployment completion time, smoke test results,and/or any other data related to the status of the server or softwareapplications running on the server. Server response messages refer toany messages sent from the automation server or deployment server. Insome embodiments, the server response messages are sent from theautomation server and/or deployment server to the AD computing device inresponse to the AD computing device transmitting instructions to theautomation server and/or deployment server. In some embodiments, theserver response messages include error messages. In some embodiments,server response messages and server status data may overlap. Third partyapplication responses refer to any messages or communications sent froma third party applications server and/or any third party applications tothe AD computing device. Third party application responses may includethe status or health of third party applications, errors associated witha particular process, and or any other data associated with the thirdparty applications.

Error log data refer to any errors, with or without associatedsolutions, encountered during processes implemented in an AD computingsystem, such as receiving a voice input, receiving additional data froman automated database, determining a user command contained in the voiceinput, communicating with an automation server, deploying software to adeployment server, or sending third party application instructions to athird party applications server. Errors may include associatedsolutions, which refer to any solution which remedies the error and/orallows a process to proceed. For example, error log data may include aknown error indicating a specified server is inactive, and an associatedsolution indicating that software should be deployed to a backup serverin response to the error. In some embodiments, error log data may becollected from third party databases or websites. In some embodiments,error log data may overlap with application response data.

Based on the voice input, ML data, and language data, the AD computingdevice generates deployment instructions for deploying software on thedeployment server and transmits the deployment instructions to theautomation server. Specifically, the AD computing device includes amachine learning (“ML”) module, a language module, and an instructionsmodule; the AD computing device utilizes these three modules to generatedeployment instructions based on received data inputs. The machinelearning module utilizes training data, such as system data, to developcalibrated language models and a calibrated instructions model, whichare utilized by the language module and the instructions modulerespectively to more effectively carry out their operations. Thelanguage module receives a voice input, and, based on the calibratedlanguage models and language data, the language module determines auser-command associated with the voice input and transmits theuser-command to the instructions module. The instructions modulereceives the user-command, and based on the calibrated instructionsmodel, language data, and system data, generates deployment instructionsmeant to implement the user-command within a computer system. In someembodiments, the instructions module receives the user-command, andbased on the calibrated instructions model, language data, and systemdata, generates a notification for collecting user-input and utilizesthe user response data to generate deployment instructions. Further, theAD computing device may utilize the user response data to update thecalibrated instructions model and create a customized instructions modelwhich takes into account the preferences of a specific user or aspecific group of users.

In the exemplary embodiment, the ML module utilizes ML data, such ascalibrated and uncalibrated ML models, training data, and ML methods andalgorithms, to generate calibrated ML models, which includecalibrated/customized language models and a calibrated/customizedinstructions model, which are utilized by the language module andinstructions module respectively. In the exemplary embodiment, the MLmodule receives ML data from the automation database. The ML moduleutilizes ML methods and algorithms to process training data and generatefunction elements, which include coefficients and/or any other dataelements associated with a function or a decision model. The ML moduleis configured to apply function elements to an uncalibrated ML model andgenerate a calibrated ML model. The ML module is configured to generatecalibrated language models, such as a natural language processing “NLP”model, a parsing model, and an application recognition model, andtransmit the calibrated language models to the language module in orderto enable more effective language processing by the AD computing device.The ML module is further configured to generate a calibratedinstructions model and/or a customized instructions model and transmitthe calibrated instructions model and/or customized instructions modelto the instructions module in order to enable more effective deploymentand third party application communication by the AD computing device.

In the exemplary embodiment, the language module is configured toreceive a voice input, translate the voice input into text, determine ameaning of the voice input, determine a user-command contained in thevoice input, and transmit the user-command to the instructions module.In order to carry out the aforementioned processes, the language moduleis configured to utilize at least one calibrated language model, adecision-making model that generates a particular output based on datainputs. In some embodiments, at least one calibrated language model isgenerated by the ML module as described above. In the exemplaryembodiment, the language module employs a natural language processing(“NLP”) model, a parsing model, and a skills recognition model. Thelanguage module is configured to utilize the NLP model for converting avoice input into text input and attributing meaning to the text input.The language module is further configured to utilize the parsing modelfor identifying a user-command in the text input. The language module isalso configured to utilize the skills recognition model to identify anyskills (described in more detail below) contained in the user-command.The language module is further configured to transmit the user-commandand identified skills to the instructions module.

In the exemplary embodiment, the instructions module is configured toreceive a calibrated instructions model from the ML module and auser-command from the language module. The instructions module isfurther configured to utilize the calibrated instructions model,user-command, system data, and language data to generate deploymentinstructions, which cause a server to deploy a specific code, andtransmit the deployment instructions to an automation server. In theexemplary embodiment, the instructions module is also configured toutilize the calibrated instructions model and additional data togenerate third party application instructions, which cause the thirdparty applications server to implement some action on a third partyapplication, and transmit the third party application instructions tothe third party application server.

In the exemplary embodiment, the instructions module is furtherconfigured to receive application response data, such as an errormessage, from the automation server, deployment server, and/or thirdparty applications server. By utilizing the calibrated instructionsmodel, the instructions module processes the application response dataand additional data and generates at least one of (i) a notificationasking for user input or (ii) revised instructions for the automationserver, deployment server, and/or third party application server. The ADcomputing device is configured to transmit the notification to a usercomputing device and receive user response data on how to proceed basedon the application response data. Based on the user response data theinstructions module may generate revised instructions for the automationserver, deployment server, and/or third party application server. Basedon the user response data, which may be considered specific usage data,the AD computing device may update its machine learning models andgenerate a customized instructions model that allows the instructionsmodule to respond to subsequent application response data in a way thatis more consistent with the preferences of a user or a group of users.

The methods and systems described herein may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware or any combination or subset thereof,wherein the technical effects may be achieved by performing the computeroperations described herein, which may include, but are not limited to,the following steps: (i) receiving a voice input from a user computingdevice; (ii) extracting a user command from the voice input; (iii)generating deployment instructions based on the user command, whereinthe deployment instructions are computer-executable instructions forcausing the deployment of the code on the first server; (iv)transmitting the deployment instructions to an automation server; (v)receiving application response data from the automation server; (vi)generating revised instructions based on the application response data,wherein the revised instructions are computer-executable instructionsfor causing the deployment of the code on a second server; (vii)transmitting the revised instructions to the automation server; (viii)generating a notification requesting a response from a user; (ix)transmitting the notification to a user computing device; (x) receivinga user response in the form of user response data from the usercomputing device; (xi) generating revised instructions based on theapplication response data and user response data, wherein the revisedinstructions are computer-executable instructions for causing thedeployment of the code on a second server; (xii) utilizing a traineddecision model to generate deployment instructions and revisedinstructions, wherein the trained decision model is trained usingmachine learning techniques; (xiii) updating the trained decision model,using the machine learning techniques, based on the user response data;(xiv) generating third party application instructions based on the usercommand, wherein the third party application instructions arecomputer-executable instructions for causing some action within a thirdparty software application; and (xv) transmitting the third partyapplication instructions to a third party application server.

The technical benefits achieved by the methods and systems describedherein include: (a) increasing the speed, accuracy, and automation ofcode deployment, thereby enabling more efficient and reliable evolutionof a computer system or a computer application; (b) preventing theaddition of unnecessary human error through automation of codedeployment processes; (c) increasing computer system security byreducing reliance on external inputs in code deployment processes; (d)enabling the calibration of a machine learning decision model forgenerating code deployment instructions based on voice-input and/orresponse data; (e) enabling a customized machine learning model capableof generating actions based on the usage data of a specific user orspecific group of users; and (e) automating interactions between anautomation server and third party applications, thereby increasing thespeed of and reducing errors in intra-server communication.

Further, any processor in a computer device referred to herein may alsorefer to one or more processors wherein the processor may be in onecomputing device or a plurality of computing devices acting in parallel.Additionally, any memory in a computer device referred to herein mayalso refer to one or more memories wherein the memories may be in onecomputing device or a plurality of computing devices acting in parallel.

As used herein, a processor may include any programmable systemincluding systems using micro-controllers, reduced instruction setcircuits (RISC), application specific integrated circuits (ASICs), logiccircuits, and any other circuit or processor capable of executing thefunctions described herein. The above examples are example only, and arethus not intended to limit in any way the definition and/or meaning ofthe term “processor.”

As used herein, the term “database” may refer to either a body of data,a relational database management system (RDBMS), or to both. As usedherein, a database may include any collection of data includinghierarchical databases, relational databases, flat file databases,object-relational databases, object oriented databases, and any otherstructured collection of records or data that is stored in a computersystem. The above examples are example only, and thus are not intendedto limit in any way the definition and/or meaning of the term database.Examples of RDBMS's include, but are not limited to including, Oracle®Database, MySQL, IBM® DB2, Microsoft® SQL Server, Sybase®, andPostgreSQL. However, any database may be used that enables the systemsand methods described herein. (Oracle is a registered trademark ofOracle Corporation, Redwood Shores, Calif.; IBM is a registeredtrademark of International Business Machines Corporation, Armonk, N.Y.;Microsoft is a registered trademark of Microsoft Corporation, Redmond,Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.)

In one embodiment, a computer program is provided, and the program isembodied on a computer readable medium. In an exemplary embodiment, thesystem is executed on a single computer system, without requiring aconnection to a sever computer. In a further exemplary embodiment, thesystem is being run in a Windows® environment (Windows is a registeredtrademark of Microsoft Corporation, Redmond, Wash.). In yet anotherembodiment, the system is run on a mainframe environment and a UNIX®server environment (UNIX is a registered trademark of X/Open CompanyLimited located in Reading, Berkshire, United Kingdom). The system isflexible and designed to run in various different environments withoutcompromising any major functionality. In some embodiments, the systemincludes multiple components distributed among a plurality of computingdevices. One or more components may be in the form ofcomputer-executable instructions embodied in a computer-readable medium.The systems and processes are not limited to the specific embodimentsdescribed herein. In addition, components of each system and eachprocess can be practiced independent and separate from other componentsand processes described herein. Each component and process can also beused in combination with other assembly packages and processes.

The following detailed description illustrates embodiments of thedisclosure by way of example and not by way of limitation. It iscontemplated that the disclosure has general application to processingfinancial transaction data by a third party in a variety ofapplications.

As used herein, an element or step recited in the singular and proceededwith the word “a” or “an” should be understood as not excluding pluralelements or steps, unless such exclusion is explicitly recited.Furthermore, references to “example embodiment” or “one embodiment” ofthe present disclosure are not intended to be interpreted as excludingthe existence of additional embodiments that also incorporate therecited features.

FIG. 1 illustrates a block diagram of automated deployment (“AD”)computer system 100, which may be used to automatically deploy softwarebased on voice-input from a user. In the exemplary embodiment, ADcomputer system 100 includes AD computing device 102, which includesmachine learning (“ML”) module 114, language module 116, instructionsmodule 118, and memory 120. AD computer system 100 further includesautomation server 106, deployment servers 108, third party applicationsserver 110, user computing device 104, and automation database 122, allof which are in communication with AD computing device 102. In theexemplary embodiment, deployment servers 108 includes one or a pluralityof servers onto which software can be deployed.

In the exemplary embodiment, AD computing device 102 is configured toreceive a voice-command to deploy software on a particular server,translate the voice-command into computer-executable instructions, andsend the computer-executable instructions to automation server 106 tofacilitate the deployment of the software on deployment servers 108. Insome embodiments, AD computing device 102 is configured to communicatedirectly with deployment server 108. Further, AD computing device 102 isconfigured to receive feedback from automation server 106, such as anerror message, and determine a course of action based on the errormessage. In one embodiment, AD computing device 102 receives an errormessage and sends a notification to user computing device 104 asking fora user response. AD computing device 102 is configured to “learn” fromthe user response in order to automatically respond to subsequent errormessages. In another embodiment, AD computing device 102 receives anerror message and determines an alternative course of action andimplements that course of action.

As an example, a user may interact with user computing device 104, suchas a virtual assistant, and provide the voice-input “Virtual AssistantX, deploy software A on server B.” AD computing device 102 may receivethe voice-input from user computing device 104, determine theuser-command includes deploying software A on server B, and generatedeployment instructions which facilitate or cause automation server 106to deploy software A on server B. AD computing device 102 may transmitthe instructions to automation server 106 and receive a responseindicating that server B is offline. AD computing device 102 may thensend a notification to user computing device 104 describing the errormessage and asking for a user response. AD computing device 102 may thenreceive a user response indicating that software A should be deployed toserver C, and may generate instructions for deploying software A toserver C. The AD computing device 102 may store the user-response inmemory 120 and utilize the user-response to subsequently deploy code toserver C when server B is offline.

In the exemplary embodiment, AD computing device 102 is also configuredto interact with third party applications server 110 in order toimplement certain actions through third party software applications 112.AD computing device 102 is configured to transmit instructions to thirdparty applications server 110 that cause third party applications server110 to utilize one or more third party software applications 112 togenerate an outcome specified by AD computing device 102. For example,AD computing device 102 may send instructions to third partyapplications server 110 that cause third party applications server 110to access a third party software application such as MessagingApplication Z, and post a message on through Messaging Application Z. Insome embodiments, AD computing device 102 communicates directly withthird party software applications 112.

In the exemplary embodiment, AD computing device 102 includes ML module114, language module 116, and instructions module 118, which areutilized by AD computing device 102 to carry out actions described inmore detail below. In some embodiments, ML module 114, language module116, and instructions module 118 are local to AD computing device 102.In other embodiments, ML module 114, language module 116, andinstructions module 118 are external to AD computing device 102.

In the exemplary embodiment, AD computing device 102 is alsocommunicably coupled to automation database 122, which may be locatedremotely or locally in relation to AD computing device 102. In someembodiments, AD computing device 102 communicates with automationdatabase 122 through a database server. AD computing device 102 isconfigured to access automation database 122 to store and/or retrievedata. Automation database 122 is configured to store any of thedatatypes discussed herein, which include but are not limited to:voice-inputs, user-commands, user-instructions, specified servers,specified applications, machine learning data, language data, systemdata, instructions data, deployment instructions, third partyapplication instructions, revised instructions, application responsedata, notifications, and user-responses.

FIG. 2 illustrates a data flow diagram depicting data flow 200 within anAD computing system, such as AD computing system 100 (shown in FIG. 1).In the exemplary embodiment, AD computing device 102 is configured toreceive data from automation database 122, user computing device 104,automation server 106, and third party applications server 110. ADcomputing device 102 is further configured to process and send data toautomation database 122, user computing device 104, automation server106, and third party applications server 110.

In the exemplary embodiment, AD computing device 102 receives voiceinput 202 from user computing device 104. Voice input 202 includes anaudio recording of a user-command, and may further include a wake-word.In some embodiments, the user-command includes a user-instruction,specified server, and/or specified application. For example, voice input202 may include an audio recording of a user saying “Virtual AssistantX, tell Automation Server Y to deploy software A to B”, where “VirtualAssistant X” is a wake-word and “tell Automation Server Y to deploysoftware A to B” is a user-command which includes the user-instructions“deploy software A”, the specified server “B”, and the specifiedapplication “Automation Server Y”.

In the exemplary embodiment, AD computing device 102 is furtherconfigured to receive machine learning (“ML”) data 204, language data206, and/or system data 208 from automation database 122. ML data 204includes uncalibrated decision models, calibrated decision models, suchas calibrated language models and calibrated instructions models, MLmethods and algorithms, function elements, and/or training data.Language data 206 includes natural language processing (“NLP”) models,language parsing models, skills recognition models, user-specificlanguage data, and grammar, syntax, and vocabulary rules. In someembodiments, the NLP, language parsing, and skills recognition modelsare calibrated or uncalibrated decision models and may also be includedunder ML data 204. System data 208 includes any data referring toprevious data inputs, user actions, system outputs, applicationresponses, errors, and/or computer instructions. In particular, systemdata 208 includes usage data, instructions data, application responsedata, and error log data.

In the exemplary embodiment, AD computing device 102 is configured toprocess voice input 202, along with ML data 204, language data 206,and/or system data 208, and generate instructions such as deploymentinstructions 210, revised instructions 214, and/or third partyapplication instructions 220. AD computing device 102 is configured totransmit deployment instructions 210 to automation server 106. ADcomputing device 102 is further configured to receive applicationresponse data 212 from automation server 106 based on the transmissionof deployment instructions 210. In response to receiving applicationresponse data 212, AD computing device 102 is configured to generate atleast one of notification 216 and revised instructions 214. In oneembodiment, AD computing device 216 transmits notification 216 to usercomputing device 104 and receives user response 218. AD computing device102 is configured to process user response 218 and generate revisedinstructions 214. Based on user response 218, AD computing device 102may learn to generate revised instructions 214 in response to subsequentapplication response data 212 without requiring an additional userresponse.

In the exemplary embodiment, AD computing device 102 is configured togenerate third party application instructions 220, and transmit thirdparty application instructions 220 to third party applications server110. AD computing device 102 is further configured to receiveapplication response data 222 from third party applications server 110.AD computing device 102 generates third party application instructions220 based on voice input 202, ML data 204, language data 206, and/orsystem data 208, and may further take user response 218, applicationresponse data 212, and/or application response data 222 into account. Inone embodiment, AD computing device 102 generates third partyapplication instructions 220 in response to receiving voice input 202.In another embodiment, AD computing device 102 generates third partyapplication instructions 220 in response to receiving applicationresponse data 212 and/or user response 218. In yet another embodiment,AD computing device 102 generates third party application instructions220 in response to receiving application response data 222.

FIG. 3 illustrates a data flow diagram depicting data flow 300 betweenthe modules of AD computing device 102. In the exemplary embodiment, ADcomputing device 102 includes machine learning (“ML”) module 114,language module 116, and instructions module 118. AD computing device102 is in communication with user computing device 104, automationdatabase 122, and automation server 106.

In the exemplary embodiment, AD computing device 102 receives trainingdata 302 from automation database 122. Training data refers to any datathat can be processed by ML module 114 in order to generate calibratedecision models. In alternative embodiments, AD computing device 102receives additional data, such as other ML data, language data, and/orsystem data from automation database 122. AD computing device 102 isconfigured to use ML module 114 to process training data 302 andgenerate calibrated decision models, such as calibrated language models304 and calibrated instructions models 306. In one embodiment, ML module114 processes training data 302 using machine learning (“ML”) methodsand algorithms, generates function elements, and applies the functionelements to an uncalibrated decision model in order to generate acalibrated decision model. ML module 114 is configured to transmitcalibrated decision models to language model 116 and instructions module118. In particular, ML module 114 is configured to transmit calibratedlanguage models 304 to language module 116 and calibrated instructionsmodels 306 to instructions module 118. For example, ML module 114 mayutilize training data that associates audio recordings with associatedtext language. ML module 114 may process the training data using asupervised learning algorithm, generate a natural language processing(“NLP”) model, and transmit the NLP model to language module 116.

In the exemplary embodiment, AD computing device is configured toreceive voice input 308 from user computing device 104. AD computingdevice is further configured to use language module 116 to generate usercommand 310 from voice input 308. Language module 116 is configured toutilize calibrated language models 304 to process voice input 308 andgenerate user command 310. Language models 304 include, but are notlimited to, NLP models, language parsing models, and skills recognitionmodels. Additionally, any of the language models may be customizedlanguage models generated by ML module 114 based on user-specificlanguage data. Language module 116 is configured to process voice input308 and generate a text input of the words spoken in voice input 308.Language module 116 is further configured to assign meaning to the textinput and parse the text input into different components, such as a wakeword and a user command, which may include a user instruction, specifiedapplication, and/or specified server. Language module 116 is configuredto identify user command 310 from the parsed components and transmituser command 310 to instructions module 118. In one example, languagemodule 116 receives a voice input that contains an audio recording ofthe words “deploy A to B”. Language module 116 may generate text inputfrom the audio and assign meaning to the text input, such as anindication that the voice input is requesting AD computing device 102 todeploy software A on server B. Further, language module 116 may parsethe text input and determine that “deploy A to B” is a user command,“deploy A” is a user-instruction, and “B” is a specified server.Language module 116 may then transmit the user command to instructionsmodule 118.

In the exemplary embodiment, instructions module 118 is configured toreceive user command 310 and generate computer-executable instructions,such as deployment instructions 312, based on user command 310.Instructions module 118 is configured to use calibrated instructionsmodels 306 to generate deployment instructions 312 based on user command310. In the exemplary embodiment, calibrated instructions models 306contain at least one decision model that assists instructions module 118in generating computer-executable instructions based on user command310. Instructions module 118 may receive user command 310, along withother system data, and determine, based on models and/or functionscontained in calibrated instructions models 306, a particular outputbased on user command 310. Instructions module 118 may transmit thatoutput, such as deployment instructions 312, to automation server 106.

In the exemplary embodiment, instructions module 118 is also configuredto generate notification 314 as an output, and transmit notification 314to user computing device 104. In some embodiments, instructions module118 generates notification 314 based on user command 310. In someembodiments, instructions module 118 generates notification 314 based ona response received from automation server 106. In still otherembodiments, instructions module 118 generates notification 314 anddeployment instructions 312 based on user command 310.

In the exemplary embodiment, user command 310, deployment instructions312, and notification 314 are stored as system data in automationdatabase 122 and may be subsequently utilized by ML module 114 togenerate calibrated language models 304 and calibrated instructionsmodels 306, which include customized language models and customizedinstructions models respectively.

FIG. 4 illustrates a data flow diagram depicting data flow 400 withinmachine learning (“ML”) module 114 and between ML module 114, automationdatabase 122, learning module 116, and instructions module 118. Ingeneral, ML module 114 is utilized by AD computing device 102 (shown inFIG. 1) in order to help AD computing device 102 “learn” to analyze,organize, and/or process data without being explicitly programmed.Specifically, ML module 114 is utilized by AD computing device 102 togenerate calibrated models 420 and customized models 422, which areutilized by AD computing device 102 to make decisions based on certaininputs. In the exemplary embodiment, ML module 114 receives ML data 402from automation database 122, and utilizes ML methods and algorithms 406to generate calibrated decision models, such as calibrated models 420and customized models 422. ML module 114 is further configured totransmit calibrated models 420 and customized models 422 to learningmodule 116 and instructions module 118, where the models may be used toassist in language processing and instructions generation.

In the exemplary embodiment, ML module 114 receives ML data 402 fromautomation database 122. ML data 402 includes, but is not limited to,uncalibrated models 404, ML methods and algorithms 406, functionelements 408, training data 410, and specific usage data 412. ML module114 utilizes ML methods and algorithms 406 to process training data 412and generate function elements 408, which include coefficients and/orany other data elements associated with a function or a decision model.ML module 114 is configured to apply function elements 408 touncalibrated model 404 and generate calibrated model 420. Uncalibratedmodel 404 may be any decision-making model or function with undefined orpartially defined coefficients and/or function elements. ML module 114is further configured to utilize specific usage data 412 to furtheradapt calibrated model 420 to a particular user or group of users,thereby generating customized model 422. ML module 114 is configured totransmit calibrated model 420 and customized model 422 to learningmodule 116 and/or instructions module 118. In some embodiments, MLmodule 114 is configured to store calibrated models 420 and customizedmodels 422 in automation database 122.

In the exemplary embodiment, ML module 406 is configured to utilize MLmethods and algorithms 406, which may include a variety of methods andalgorithms such as: linear or logistic regression, instance-basedalgorithms, regularization algorithms, decision trees, Bayesiannetworks, cluster analysis, association rule learning, artificial neuralnetworks, deep learning, dimensionality reduction, and support vectormachines. ML methods and algorithms 406 are generally directed toward atleast one of a plurality of categorizations of machine learning,including supervised learning methods 414, unsupervised learning methods416, and reinforcement learning methods 418. ML module 114 is configuredto apply ML methods and algorithms 406 to processes training data 402,which includes system data such as usage data, application responsedata, instructions data, and error log data, in order to determinefunction elements 408. In other words, ML module 114 uses ML methods andalgorithms 406 determine, identify, or define relationships and/orpatterns in training data 410, and generate function elements 408describing those relationships and/or patterns. ML module 114 then usesfunction elements 408 to develop calibrated model 420 from uncalibratedmodel 404.

In one embodiment, ML module 114 utilizes supervised learning methods414, which involve defining relationships in organized and/or labeleddata to make predictions about subsequently received data. Usingsupervised learning 414, ML module 114 receives training data 410 thatincludes training inputs and associated training outputs. For example,for a system attempting to identify images including cats, the trainingdata would include an image (the training input) and an associated labelspecifying whether or not the image includes a cat (the trainingoutput). ML module 114 uses supervised learning methods 414 to processtraining data 410 and generate function elements 408 that, when appliedto uncalibrated model 404, effectively map outputs to certain inputs. Inone example, ML module 114 receives training data 410 that includesvoice inputs and user commands contained within those voice inputs. MLmodule 114 may process the training data using a supervised learningalgorithm and generate function elements that map certain user commandsto certain voice inputs.

In another embodiment, ML module 114 utilizes unsupervised learningmethods 416, which involve finding meaningful relationships inunorganized data. Unlike supervised learning methods 414, unsupervisedlearning methods 416 do not utilize training data that includes labeledinputs and associated outputs. Rather, training data 410 is unorganized,and ML module 114 utilizes unsupervised learning methods 416 todetermine or identify relationships within training data 410 andgenerate function elements 408 that, when applied to uncalibrated model404, effectively describe these relationships. In one example ML module114 receives training data 410 that includes unorganized general usagedata and error log data. ML module 114 may process the training datausing an unsupervised learning algorithm, identify relationships betweengeneral usage data and error log data, and generate function elementsthat represent the identified relationships.

In another embodiment, ML module 114 utilizes reinforcement learningmethods 418, which involve optimizing outputs based on feedback from areward signal. Specifically, reinforcement learning methods 418 includea user-defined reward signal definition, which provides a reward signalbased on an output generated by a decision-making model, such asuncalibrated model 404 or calibrated model 420. The decision-makingmodel receives a data input, generates an output, and receives a rewardsignal based on the output. Reinforcement learning methods 418 areconfigured to adjust function elements 408 based on the strength of thereward signal, so as to receive stronger rewards signals forsubsequently received data inputs. In one example, ML module 114 maydefine a reward signal for a reinforcement learning algorithm, such thata high user satisfaction rating correlates with a strong reward signal.ML module 114 may receive training data including an error message, andthe ML module 114 may utilize an uncalibrated or calibrated model toprocess the error message and generate revised instructions. The MLmodule 114 may receive further training data that includes a usersatisfaction rating associated with the revised instructions, and basedon the reward signal received for a certain user satisfaction rating,defines function elements for the decision model such that the decisionmodel generates revised instructions outputs that receive higher usersatisfaction ratings.

In the exemplary embodiment, regardless of the specific ML methods andalgorithms 406 used to generate function elements 408, ML module 114 isconfigured to apply function elements 408 to uncalibrated model 404 inorder to generate calibrated model 420. For example, ML module 114 mayutilize an unsupervised learning algorithm to process training data,including text input and specified servers contained in the text input,and generate function elements that map certain specified servers tocertain text inputs. ML module 114 may then apply the function elementsto an uncalibrated model and generate a calibrated model that can beused to output specified servers upon receiving a text input. In theexemplary embodiment, ML module 114 is configured to store calibratedmodel 420 in automation database 122. ML module 114 is furtherconfigured to transmit calibrated model 420 to language module 116,instructions module 118, and/or any memory local to AD computing device102.

In the exemplary embodiment, ML module 114 is configured to updatecalibrated model 420 and generate customized model 422. Whereas MLmodule 114 generates calibrated model 420 based on general usage datathat takes into account the actions of many different users, ML module114 generates customized model 422 based on both general usage data andspecific usage data, such that customized model 422 is configured togenerate outputs adapted to a specific user or group of users.Specifically, ML module 114 generates calibrated model 420, utilizes MLmethods and algorithms 406 to process specific usage data 412 andgenerate customized function elements, and generates customized model422 based on the customized function elements. In some embodiments, MLmodule 114 receives calibrated model 420 from automation database 122.In some embodiments, ML module 114 utilizes function elements to adjustthe elements and/or coefficients of calibrated ML model 422. In oneexample, ML module 114 receives a calibrated machine learning model anda supervised learning algorithm from the automation database, along withtraining data that includes error log data and user response data. MLmodule 114 may utilize the supervised learning algorithm to process thetraining data, establish a relationship between certain errors and userresponses to those errors, and generate function elements describing therelationship. The ML module may then apply the function elements to thecalibrated model to adjust elements and/or coefficients of the modelsuch that the calibrated model is customized to a specific user or groupof users included in the user response data.

In some embodiments, ML module 114 is configured to generate customizedmodel 422 from uncalibrated model 404, rather than developing calibratedmodel 420 in the interim. Specifically, ML module 114 is configured toreceive training data 412 that includes specific usage data, such asspecific usage data 412. ML Module 114 utilizes ML methods andalgorithms 406 to process training data 410 and generate functionelements 408 which already take data related to specific users intoaccount. ML module 114 then applies function elements 408 touncalibrated model 404 and generates customized model 422.

In one embodiment, ML module 114 is configured to receive usage data andmap user-responses to application response data 612. Specifically, theAD computing device 102 is configured to link associated system data,such as deployment instructions, revised instructions, applicationresponse data, notifications, voice inputs, voice commands, and userresponse data, and store the associated data points in automationdatabase 122. ML module 114 is configured to access the system data, forexample in the form of training data 410, and generate calibrated andcustomized models based on associations within the system data.

In one embodiment, user response data for a specific user or group ofusers in response to notifications may be stored as specific usage data412 and used by ML module 114 to create customized models. In otherwords, when AD computing device 102 receives application response data,transmits a notification to a user computing device, and receives userresponse data in response to the notification, ML module 114 is able toutilize the user response data in order to further improvedecision-making models. For example, in response to transmitting anotification indicating that server A is offline, AD computing device102 may receive user response data indicating that software should bedeployed to server B. Based on the user response data, ML module 114 mayupdate its calibrated instructions model so that subsequent requests todeploy to offline server A are automatically re-deployed to server B.

In the exemplary embodiment, the ML module is configured to generatecalibrated and customized models 420, 422 that includecalibrated/customized language models and calibrated/customizedinstructions models, and transmit calibrated and customized models 420,422 to language module 116 and/or instructions module 118.Calibrated/customized language models enable language module 116 toimplement more effective language processing by AD computing device 102,and they include, but are not limited to, a natural language processing“NLP” model, a parsing model, and an application recognition model.Calibrated/customized instructions models enable instructions module 118to implement more effective communication with deployment servers andthird party application servers.

FIG. 5 illustrates a data flow diagram depicting data flow 500 withinlanguage model 116 and between language module 116, automation database122, ML module 114, and instructions module 118. In the exemplaryembodiment, language module 116 is configured to receive voice input 502from user computing device 104, translate voice input 502 into textinput 522 and determine a meaning associated with text input 522,determine user-command 524 contained in text input 522, and transmituser-command 524 to instructions module 118.

In order to carry out the aforementioned processes, language module 116is configured to utilize at least one of a plurality of calibratedlanguage models 514, which are decision-making models that generates aparticular output based on data inputs. In some embodiments, at leastone of the plurality of calibrated language models 514 is generated byML module 114 as described above. In the exemplary embodiment, languagemodule 116 employs natural language processing (“NLP”) model 516,parsing model 518, and skills recognition model 520. Language module 116is configured to utilize NLP model 516 for converting voice input 502into text input 522 and attributing meaning to text input 522. Languagemodule 116 is further configured to utilize parsing model 518 foridentifying user-command 524 in text input 522. Language module 116 isalso configured to utilize skills recognition model 520 to determineidentified skills 526 contained in user-command 524. Language module 116is further configured to transmit user-command 524 and identified skills526 to instructions module 118.

In the exemplary embodiment, language module 116 is further configuredto receive language data from automation database 122 (shown in FIG. 1).The language data may include calibrated language models, such ascalibrated language models 514, and may further include any grammar,syntax, and/or vocabulary rules necessary for the calibrated languagemodels to operate.

In the exemplary embodiment, language module 116 is configured toreceive voice input 502 from user computing device 104. Voice input 502may include wake word 504 and user-command 506, which may additionallyinclude specified application 508, user-instruction 510, and specifiedserver 512. Language module 116 employs NLP model 516 to translate voiceinput 502 into text input 522 and further assign meaning to text input522. In the exemplary embodiment, text input 522 contains all thecomponents of voice input 502 such as wake word 504, user-command 506,specified application 508, user-instruction 510, and specified server512. NLP model 516 utilizes natural language processing (“NLP”), alongwith grammar, syntax, and vocabulary rules, to analyze voice input 502,translate the audio of voice input 502 to text, and determine themeaning of the text. In one embodiment, NLP model 516 includes a speechrecognition model for translating audio input into text. In anotherembodiment, NLP model 516 determines and assigns meaning to voice input502 without converting voice input 502 into text input 522. In oneexample, language module 116 applies NLP model 516 to a voice input thatcontains audio of the words “Virtual assistant X, deploy code A onserver B”. NLP model 516 converts the audio into the text “Virtualassistant X, deploy code A on server B” and assigns meaning to thephrase, such as “Phase indicates user deployment command”.

In the exemplary embodiment, language module 116 is further configuredto utilize parsing model 518 to parse text input 522 and determine auser-command, such as user-command 506, contained in text input 522.Parsing model 518 uses grammar, syntax, and vocabulary rules todifferentiate separate components of text input 522. In other words, theparsing model determines which elements of text input 522 represent wakeword 504, user-command 506, specified application 508, user-instruction510, and/or specified server 512. Parsing model 518 is furtherconfigured to utilize the meaning attributed to text input 522 as a wayto more effectively parse the text. In one embodiment, parsing model 518receives a voice input, such as voice input 502, and determines thecomponents of voice input 502 directly. In one example, language module116 applies parsing model 518 to a text-input containing the words“Virtual assistant X, tell automation server Y to deploy code A onserver B”, and parsing model 518 determines that “Virtual assistant X”is a wake word, “deploy code A” is a user-instruction”, “server B” is aspecified server, and “automation server Y” is a specified application.In another example, language module 116 applies parsing model 518 to atext-input containing the words “Virtual assistant X, deploy A”, andparsing model 518 determines that “Virtual assistant X” is a wake wordand “deploy A” is a user-instruction.

In one embodiment, language module 116 is configured to determine thatmore information is required to effectively parse and/or interpret textinput 522. Language module 116 is configured to communicate with ADcomputing device 102 such that AD computing device 102 transmits anoutput asking a user for additional inputs, such as inputs to clarify apreviously issued voice command. In one example, AD computing device 102asks the user to confirm that a particular portion of the user input isa user-command, wake word, or application specification. In anotherexample, AD computing device requests the user specify the user-command,wake word, and/or application specification. In another example, ADcomputing device asks the user to repeat the voice input.

In the exemplary embodiment, language module 116 is further configuredto utilize skills recognition model 520 to determine identified skills526 indicated by text input 522. Identified skills 526 refer to softwareapplications, programs, and/or other commands or services that can beperformed, implemented, or otherwise activated by AD computing device102 to carry out a task. Identified skills 526 are related user-command506 and, in particular, specified application 508. In some embodiments,skills recognition model 520 determines identified skills 526 based onspecified application 508 included in text input 522. In someembodiments, identified skills 526 refer to any third party applicationsand/or automation servers. For example, a user-command for sending amessage to a team may include “Messaging Application Z” as a specifiedapplication, and skills recognition model 520 may identify a skill forusing Messaging Application Z as the skill necessary for carrying outthe user-command. In other embodiments, skills recognition model 520determines identified skills 526 based on other elements of user-command506, such as user-instructions 510 and/or a specific server 512. Forexample, a user-command may not include a specified action, but mayinclude “deploy software AP” as a user-instruction. Skills recognitionmodel 526 may identify a skill for using an automation server, such asAutomation Server Y as the skill necessary for carrying out theuser-instruction.

In the exemplary embodiment, language module 116 is configured toreceive data from automation database 122, user computing device 104, MLmodule 114, and/or instructions module 118. Language module 116 isfurther configured to store data in automation database 122, such astext input 522, meanings attributed to text input 522, wake word 504,user-command 506, specified application 508, user-instructions 510,specified server 512, and/or identified skills 526. Language module 116is further configured to transmit user-command 506, including specifiedapplication 508, user-instructions 510, and specified servers 512, andidentified skills 526 to instructions module 118.

FIG. 6 illustrates a data flow depicting exemplary data flow 600 withininstructions module 118 and between instructions module 118, ML module114, language module 116, automation server 106, and deployment servers108. In the exemplary embodiment, instructions module 118 is configuredto receive a command to deploy code to a particular server. Instructionsmodule 118 is configured to process the command, generate acomputer-executable instruction based on the command, and transmit thecomputer-executable instruction to an automation server or some otherserver in order to deploy code. In some embodiments, instructions module118 is configured to send instructions to third party applications.Instructions module 118 is further configured to receive a response froma server, such as an error message, and take action based on theresponse. In one case, instructions module 118 is configured to generatea notification asking for user input. In another case, instructionsmodule 118 is configured to generate revised instructions in light ofthe application's response. Instructions module 118 is furtherconfigured to utilize machine learning (“ML”) driven decision models toeffectively generate computer executable instructions and respond toapplication responses.

In the exemplary embodiment, instructions module 118 is configured toreceive user-command 602 from language module 116 and instructionsmodels 618, such as calibrated instructions model 620 and customizedinstructions model 622, from ML module 114. Instructions module 118 isfurther configured to receive system data and/or language data fromautomation database 122 (shown in FIG. 1). In alternative embodiments,instructions module 118 receives user-command 602 and/or calibratedinstructions models 618 from an automation database.

Using at least one of instructions models 618, instructions module 118processes user-command 602 and generates deployment instructions 606,which are configured to cause or facilitate the deployment of softwareon a server. In some embodiments, instructions module 118 is configuredto generate any type of instructions in instructions data 604, such asrevised instructions 608 or third party application instructions 610,based on user-command 602. Instructions module 118 utilizes calibratedinstructions model 620 and/or customized instructions model 622 togenerate deployment instructions 606 based on user-command 602. In otherwords, user-command 602, which is determined by language module 116, istranslated from natural language into computer executable instructions.For example, instructions module 118 may receive a user-commandincluding the user-instruction “deploy software A” and the specifiedserver “server B”. Instructions module 118 may utilize calibratedinstructions model 420, along with other data such as system data and/orlanguage data, to translate the user-command into computer-executableinstructions for deploying software A on server B, thereby generatingdeployment instructions.

In the exemplary embodiment, instructions module 118 transmitsdeployment instructions 606 to automation server 106, which manages thedeployment of specific software on deployment servers 108 (shown in FIG.1). In alternative embodiments, instructions module 118 transmitsdeployment instructions 606 directly to at least one server ofdeployment servers 108. Deployment instructions 606 are configured tocause or facilitate the deployment of software on a server, such as aserver of deployment servers 108. In the exemplary embodiment,deployment instructions 606 specify a server on which the softwareshould be deployed. In some embodiments, deployment instructions 606 donot specify a server on which the software should be deployed.

In the exemplary embodiment, instructions module 118 is configured toreceive application response data 612 from automation server 106 inresponse to transmitting deployment instructions 606 to automationserver 106. Application response data 612 may include any datatransmitted from a server to instructions module 118 in response to thetransmission of any of instructions data 604. In some embodiments,instructions module 118 receives application response data 612 directlyfrom deployment server 108. Based on application response data 612,instructions module 118 is configured to either: (i) generate andtransmit notification 614 to user computing device 104 requestinguser-input for how to proceed; or (ii) process application response data612 using at least one of instructions models 618 and generate andtransmit revised instructions 608 to automation server 106 and/ordeployment server 108. For example, instructions module 118 may transmitdeployment instructions indicating that software A should be deployed onserver B. In one instance, instructions module 118 may receiveapplication response data from automation server 106 indicating thatserver B is inactive, and instructions module 118 may generate andtransmit a notification to user computing device 104 asking for userinput on how to proceed. In another instance, instructions module 118may receive application response data from automation server 106indicating that server B is inactive, and instructions module 118 maydetermine a response and generate revised instructions for deployingsoftware A to serer C using calibrated instructions model 620.

In the exemplary embodiment, instructions module 118 is configured togenerate and transmit notification 614 to the user computing devicerequesting user-input for how to proceed in response to receivingapplication response data 612. In the exemplary embodiment, instructionsmodule 118 processes application response data 612 using at least one ofinstructions models 618, and the at least one instructions model 618 maydetermine that instructions module 118 requires further user-input inorder to adequately respond to application response data 612. Forexample, instructions module 118 may receive application response dataincluding an error message that indicates a server is offline. In theexample, calibrated instructions model 620 may have no reference forresponding to an offline server. Calibrated instructions model 620, uponprocessing the application response data, may then determine thatadditional user-input is required, and may send a notification to usercomputing device 104 asking for user-input. In some embodiments, thenotification contains options from which a user can select. In someembodiments, the notification is a more open-ended inquiry, such as “howwould you like to proceed?” In some embodiments, the notification simplypresents the situation and allows a user to respond as they see fit. Insome embodiments, the notification is a text notification. In someembodiments, the notification is a voice notification, such as an audiofile played through a user computing device. In some embodiments,instructions module 118 transmits the notification as text to languagemodule 116, and the language module converts the notification into avoice notification.

In the exemplary embodiment, instructions module 118 is furtherconfigured to receive user response data 616 from user computing device104 in response to receiving notification 614 and generate revisedinstructions 608 based on user response data 616. In one embodiment,revised instructions 608 are in the form of a voice input, and ADcomputing device 102 (shown in FIG. 1) is configured to utilize languagemodule 116 to translate the voice input into a text input usable byinstructions module 118, as described above. In another embodiment,revised instructions 608 are in the form of text or a user selection ofa finite number of options. In one embodiment, instructions module 118receives user response data 616 as a voice input after a significantamount of time has passed since notification 614 was transmitted to usercomputing device 104. In such an embodiment, instructions module 118 isconfigured to determine if the voice input is in response to apreviously transmitted notification or represents a separateuser-command.

In the exemplary embodiment, instructions module 118 is configured togenerate revised instructions 608, in response to receiving userresponse data 616, and transmit revised instructions 608 to automationserver 106 and/or deployment servers 108. For example, aftertransmitting a notification to user computing device 104 indicating thata specific server is offline, instructions module 118 may receive userresponse data containing a user-command to deploy software to analternate server. Instructions module 118 may then generate revisedinstructions indicating the software should be deployed to the alternateserver, and instructions module 118 may transmit the revisedinstructions to automation server 106.

In the exemplary embodiment, instructions module 118 is furtherconfigured to generate third party application instructions 610,transmit third party application instructions 610 to third partyapplications server 110, receive application response data 612 fromthird party applications server 110, and generate and transmit thirdparty application instructions 610 and/or revised instructions 608 inresponse to receiving application response data 612 from third partyapplication server 110. Based on processing user-command 602 using oneof instructions models 618, instructions module 118 is configured togenerate and transmit third party application instructions 610 to athird party applications server. Third party application instructions610 are configured to cause or facilitate certain actions within thirdparty applications or software. In some embodiments, third partyapplication instructions 610 are configured to cause third partyapplications server 110 to control a third party software application.In alternative embodiments, third party application instructions 610 areconfigured to directly control a third party software application. Forexample, instructions module 118 may receive a user-command thatcontains a user-instruction to post an error message on a forum.Instructions module 118 may generate and transmit third partyapplications instructions to third party applications server 110, wherethe third party application instructions are configured to cause a thirdparty application, such as Forum Application Z, to post the errormessage on a forum.

In the exemplary embodiment, instructions module 118 is furtherconfigured to receive application response data 612 from third partyapplications server 110, generate third party application instructions610 in response to receiving applications response data 612, andtransmit third party application instructions 610 to third partyapplications server 110. In some embodiments, instructions module 118 isconfigured to generate deployment instructions 606 and/or revisedinstructions 608 in response to receiving application response data 612from third party application server 110. Specifically, instructionsmodule 118 receives application response data 612 from third partyapplications server 110 and uses one of instructions models 618 togenerate third party application instructions 610 based on theapplication response data 612 and other data such as system data and/orvoice input. For example, instructions module 118 may receiveapplication response data from third party applications server 110indicating that an error message has been posted on a forum using athird party application, such Forum Application Z. Based on theapplication response data, instructions module 118 may generate andtransmit a third party application instruction to third partyapplication server 110, wherein the third party application instructioncauses the third party application server to send a message via amessaging application, such Messaging Application Z, indicating that theerror message has been posted to the forum.

In the exemplary embodiment, instructions module 118 is furtherconfigured to receive application response data 612 from automationserver 106 or deployment server 108 and generate third party applicationinstructions based on the application response data 612. In someembodiments, instructions module 118 receives application response data612 from automation server 106, sends a notification to user computingdevice 104, and generates third party application instructions based ona user response received from user computing device 104.

In the exemplary embodiment, instructions module 118 utilizes at leastone of calibrated instructions model 620 and customized instructionsmodel 622. As discussed, calibrated instructions model 620 andcustomized instructions model 622 are both generated by ML module 114.Instructions models 618, that is, calibrated instructions model 620 andcustomized instructions model 622, are decision making models that notonly allow instructions module 118 to generate instructions data 604based on user-command 602 but also to respond after receivingapplication response data 612. In other words, instructions models 618allow instructions module 118 to generate instructions for deployingcode and make adjustments to the instructions in the face or errormessages or other responses from servers.

In the exemplary embodiment, customized instructions model 622 issimilar to calibrated instructions model 620, but it is adapted to aspecific user or group of users. In other words, customized instructionsmodel 622 was trained using specific usage data, such as user responsedata 616, such that customized instructions model 622 generates outputsadapted to specific users. For example, instructions module 118 mayattempt to deploy software A on server B, and automation server 106 mayreturn an error message that server B is offline. Calibratedinstructions module 620 may send a notification to user computing device104 and receive user response data indicating that software A should bedeployed to backup server C. ML module 114 may utilize the user responsedata to update the function elements of calibrated instructions module620 and generate customized instructions module 622. Upon receiving asubsequent error message that server B is offline, customizedinstructions module 622 may automatically deploy software to backupserver C, in accordance with the preferences of the user. In anotherexample, instructions module 118 receives application response data fromautomation server 106 indicating an error in deploying to a particularserver. Instructions module 118 may generate and transmit a notificationasking for additional user input to user computing device 104.Instructions module 118 may receive user response data including avoice-command to post the error message on a forum, and instructionsmodule 118 may generate and transmit third party applicationinstructions to third party applications server 110. AD computing device102, using ML module 114, may update a calibrated instructions modelbased on the user response data in order to generate a customizedinstructions model, and after receiving subsequent application responsedata from automation server 106, instructions module 118 mayautomatically generate third party application instructions that causethird party applications server 110 to post an error message on theforum.

FIG. 7 illustrates an exemplary configuration 700 of an exemplary usercomputing device 702, such as user computing device 104 (shown in FIG.1). In some embodiments, user computing device 702 is in communicationwith an automated deployment computing device, such as AD computingdevice 102 (shown in FIG. 1). User computing device 702 may berepresentative of, but is not limited to user computing device 104. Forexample, user computing device 702 may be a smartphone, tablet,smartwatch, wearable electronic, laptop, desktop, vehicle computingdevice, or another type of computing device associated with the accountholder.

User computing device 702 may be operated by a user 704 (e.g., a user ofmatching system 100, shown in FIG. 1). User computing device 702 mayreceive input from user 704 via an input device 706. User computingdevice 702 includes a processor 708 for executing instructions. In someembodiments, executable instructions may be stored in a memory area 710.Processor 708 may include one or more processing units (e.g., in amulti-core configuration). Memory area 710 may be any device allowinginformation such as executable instructions and/or transaction data tobe stored and retrieved. Memory area 710 may include one or morecomputer-readable media.

User computing device 702 also may include at least one media outputcomponent 712 for presenting information to user 704. Media outputcomponent 712 may be any component capable of conveying information touser 704. In some embodiments, media output component 712 may include anoutput adapter (not shown), such as a video adapter and/or an audioadapter. An output adapter may be operatively coupled to processor 708and operatively coupleable to an output device, such as a display device(e.g., a cathode ray tube (CRT), liquid crystal display (LCD), lightemitting diode (LED) display, or “electronic ink” display) or an audiooutput device (e.g., a speaker or headphones). In some embodiments,media output component 712 may be configured to present a graphical userinterface (e.g., a web browser and/or a client application) to user 704.

In some embodiments, user computing device 702 may include input device706 for receiving input from user 704. User 704 may use input device 706to, without limitation, interact with AD computing system 100 (e.g.,using an app), matching computing device 102, or any of automationserver 106, deployment server 108, and/or third party applicationsserver 110 (shown in FIG. 1). Input device 706 may include, for example,a keyboard, a pointing device, a mouse, a stylus, and/or a touchsensitive panel (e.g., a touch pad or a touch screen). A singlecomponent, such as a touch screen, may function as both an output deviceof media output component 712 and input device 706. User computingdevice 702 may further include at least one sensor, including, forexample, an audio input device, a video input device, a gyroscope, anaccelerometer, a position detector, a biometric input device, and/or atelematics data collection device. In some embodiments, at least somedata collected by user computing device 702 may be transmitted to ADcomputing device 102.

User computing device 702 may also include a communication interface714, communicatively coupled to any of matching computing device 102,automation server 106, deployment server 108, and/or third partyapplications server 110. Communication interface 714 may include, forexample, a wired or wireless network adapter and/or a wireless datatransceiver for use with a mobile telecommunications network.

Stored in memory area 710 may be, for example, computer-readableinstructions for providing a user interface to user 704 via media outputcomponent 712 and, optionally, receiving and processing input from inputdevice 706. The user interface may include, among other possibilities, aweb browser and/or a client application. Web browsers enable users, suchas user 704, to display and interact with media and other informationtypically embedded on a web page or a website hosted by AD computingdevice 102 and/or user computing device 702. A client application mayallow user 704 to interact with, for example, any of matching computingdevice 102, insurance provider server 104, client devices 106, thirdparty servers 108, and social media servers 110. For example,instructions may be stored by a cloud service and the output of theexecution of the instructions sent to the media output component 712.

FIG. 8 depicts an exemplary configuration 800 of an exemplary servercomputing device 802, in accordance with one embodiment of the presentdisclosure. Server computer device 802 may include, but is not limitedto, AD computing device 102 (shown in FIG. 1). Server computer device802 may include a processor 805 for executing instructions. Instructionsmay be stored in a memory area 810. Processor 805 may include one ormore processing units (e.g., in a multi-core configuration).

Processor 805 may be operatively coupled to a communication interface815 such that server computer device 802 may be capable of communicatingwith a remote device such as another server computer device 802 or auser computing device, such as user computing device 702 (shown in FIG.7). For example, communication interface 805 may receive requests fromor transmit requests to user computing device 702 via the Internet.

Processor 805 may also be operatively coupled to a storage device 825.Storage device 825 may be any computer-operated hardware suitable forstoring and/or retrieving data, such as, but not limited to, dataassociated with automation database 122 (shown in FIG. 1). In someembodiments, storage device 825 may be integrated in server computerdevice 802. For example, server computer device 802 may include one ormore hard disk drives as storage device 825. In other embodiments,storage device 825 may be external to server computer device 802 and maybe accessed by a plurality of server computer devices 802. For example,storage device 825 may include a storage area network (SAN), a networkattached storage (NAS) system, and/or multiple storage units such ashard disks and/or solid state disks in a redundant array of inexpensivedisks (RAID) configuration.

In some embodiments, processor 805 may be operatively coupled to storagedevice 825 via a storage interface 820. Storage interface 820 may be anycomponent capable of providing processor 805 with access to storagedevice 825. Storage interface 820 may include, for example, an AdvancedTechnology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, aSmall Computer System Interface (SCSI) adapter, a RAID controller, a SANadapter, a network adapter, and/or any component providing processor 805with access to storage device 825.

Processor 805 executes computer-executable instructions for implementingaspects of the disclosure. In some embodiments, processor 805 may betransformed into a special purpose microprocessor by executingcomputer-executable instructions or by otherwise being programmed.

FIG. 9 depicts a flow chart illustrating a computer-implemented method900 for automatically deploying code to a server. In the exemplaryembodiment, method 900 may be implemented by an automated deploymentcomputer system, such as automated deployment computer system 100 (shownin FIG. 1), and more specifically, by an automated deployment computingdevice, such as automated deployment device 102 (shown in FIG. 1).

Method 900 may include receiving 902 a voice input from a user computingdevice, wherein the voice input includes at least one user command,wherein the user command contains user instructions for deploying codeto a first server. Method 900 may further include extracting 904 theuser command from the voice input and generating 906 deploymentinstructions based on the user command, wherein the deploymentinstructions are computer-executable instructions for causing thedeployment of the code on the first server. Method 900 may furtherinclude transmitting 908 the deployment instructions to an automationserver.

FIG. 10 depicts a diagram 1000 of components of one or more exemplarycomputing devices 1010 that may be used in an automated deploymentcomputer system, such as automated deployment computer system 100 (shownin FIG. 1). In some embodiments, computing device 1010 may be similar toautomated deployment computing device 102 (shown in FIG. 1). Database1020 may be coupled with several separate components within computingdevice 1010, which perform specific tasks. In this embodiment, database1020 may include user system data 1022, ML data 1024, and language data1026. In some embodiments, database 1020 is similar to automationdatabase 122 (shown in FIG. 1).

Computing device 1010 may include the database 1020, as well as datastorage devices 1030, which may be used, for example, for storing data,such as system data 1022, ML data 1024, and language data 1026 locally.Computing device 1010 may also include ML module 1040, language module1050, and instructions module 1060, which may be used in combination,for example, to receive 902 a voice input, extract 904 a user commandfrom the voice input, and generate 906 deployment instructions based onthe user command (all shown in FIG. 9). Additionally, computing device1010 may include communications component 1070, which may be used toenable communication between any components of computing device 1010 aswell as between computing device 1010 and external computing device.Communications component 1070 may be used, for example, to transmit 908deployment instructions to an automation server (shown in FIG. 9).

As will be appreciated based on the foregoing specification, theabove-described embodiments of the disclosure may be implemented usingcomputer programming or engineering techniques including computersoftware, firmware, hardware or any combination or subset thereof,wherein the technical effect is to enable the use of transaction cardsfor bill payment within a consumer financial institution paymentplatform. Any such resulting program, having computer-readable codemeans, may be embodied or provided within one or more computer-readablemedia, thereby making a computer program product, (i.e., an article ofmanufacture), according to the discussed embodiments of the disclosure.The computer-readable media may be, for example, but is not limited to,a fixed (hard) drive, diskette, optical disk, magnetic tape,semiconductor memory such as read-only memory (ROM), and/or anytransmitting/receiving medium such as the Internet or othercommunication network or link. The article of manufacture containing thecomputer code may be made and/or used by executing the code directlyfrom one medium, by copying the code from one medium to another medium,or by transmitting the code over a network.

These computer programs (also known as programs, software, softwareapplications, “apps”, or code) include machine instructions for aprogrammable processor, and can be implemented in a high-levelprocedural and/or object-oriented programming language, and/or inassembly/machine language. As used herein, the terms “machine-readablemedium” “computer-readable medium” refers to any computer programproduct, apparatus and/or device (e.g., magnetic discs, optical disks,memory, Programmable Logic Devices (PLDs)) used to provide machineinstructions and/or data to a programmable processor, including amachine-readable medium that receives machine instructions as amachine-readable signal. The “machine-readable medium” and“computer-readable medium,” however, do not include transitory signals.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

This written description uses examples to disclose the disclosure,including the best mode, and also to enable any person skilled in theart to practice the disclosure, including making and using any devicesor systems and performing any incorporated methods. The patentable scopeof the disclosure is defined by the claims, and may include otherexamples that occur to those skilled in the art. Such other examples areintended to be within the scope of the claims if they have structuralelements that do not differ from the literal language of the claims, orif they include equivalent structural elements with insubstantialdifferences from the literal language of the claims.

What is claimed is:
 1. A computer-implemented method for deploying codeto a server, the method implemented by a computer system including atleast one processor, the method comprising: receiving a voice input froma user computing device, wherein the voice input includes at least oneuser command, wherein the user command contains user instructions fordeploying code to a first server; extracting the user command from thevoice input; generating deployment instructions based on the usercommand, wherein the deployment instructions are computer-executableinstructions for causing the deployment of the code on the first server;transmitting the deployment instructions to an automation server;receiving application response data from the automation server, whereinthe application response data includes server status data associatedwith the first server; in response to receiving the application responsedata, automatically generating revised computer-executable instructionsfor causing the deployment of the code to a second server by applying atrained decision model to the application response data, wherein thetrained decision model is trained using (i) machine learning techniquesand (ii) previous user response data, wherein the previous user responsedata include responses from the user to previous application responsedata; and transmitting the revised instructions to the automationserver.
 2. The computer-implemented method of claim 1, wherein themethod further comprises: generating a notification requesting aresponse from a user; transmitting the notification to a user computingdevice; receiving a user response in the form of user response data fromthe user computing device; and generating the revised instructionscausing the deployment of the code on the second server based on theapplication response data and user response data.
 3. Thecomputer-implemented method of claim 2, wherein the method furthercomprises: updating the trained decision model, using the machinelearning techniques, based on the user response data.
 4. Thecomputer-implemented method of claim 1, wherein the method furthercomprises: generating third party application instructions based on theuser command, wherein the third party application instructions arecomputer-executable instructions for causing some action within a thirdparty software application; and transmitting the third party applicationinstructions to a third party application server.
 5. Thecomputer-implemented method of claim 1, wherein the method furthercomprises: generating third party application instructions based on theapplication response data, wherein the third party applicationinstructions are computer-executable instructions for causing someaction within a third party software application; and transmitting thethird party application instructions to a third party applicationserver.
 6. The computer-implemented method of claim 1, wherein: theautomation server receives the deployment instructions; and thedeployment instructions cause the automation server to deploy the codeon the first server without further action by the user.
 7. An automateddeployment computer system for deploying code to a server, the automateddeployment computer system including at least one processor incommunication with at least one memory device, wherein the at least oneprocessor is configured to: receive a voice input from a user computingdevice, wherein the voice input includes at least one user command,wherein the user command contains user instructions for deploying codeto a first server; extract the user command from the voice input;generate deployment instructions based on the user command, wherein thedeployment instructions are computer-executable instructions for causingthe deployment of the code on the first server; transmit the deploymentinstructions to an automation server; receive application response datafrom the automation server, wherein the application response dataincludes server status data associated with the first server; inresponse to receiving the application response data, automaticallygenerate revised computer-executable instructions for causing thedeployment of the code to a second server by applying a trained decisionmodel to the application response data, wherein the trained decisionmodel is trained using (i) machine learning techniques and (ii) previoususer response data, wherein the previous user response data includesresponses from the user to previous application response data; andtransmit the revised instructions to the automation server.
 8. Theautomated deployment computer system of claim 7, wherein the processoris further configured to: generate a notification requesting a responsefrom a user; transmit the notification to a user computing device;receive a user response in the form of user response data from the usercomputing device; and generate the revised instructions causing thedeployment of the code on the second server based on the applicationresponse data and user response data.
 9. The automated deploymentcomputer system of claim 8, wherein the processor is further configuredto: update the trained decision model, using the machine learningtechniques, based on the user response data.
 10. The automateddeployment computer system of claim 7, wherein the processor is furtherconfigured to: generate third party application instructions based onthe user command, wherein the third party application instructions arecomputer-executable instructions for causing some action within a thirdparty software application; and transmit the third party applicationinstructions to a third party application server.
 11. The automateddeployment computer system of claim 7, wherein the processor is furtherconfigured to: generate third party application instructions based onthe application response data, wherein the third party applicationinstructions are computer-executable instructions for causing someaction within a third party software application; and transmit the thirdparty application instructions to a third party application server. 12.The automated deployment computer system of claim 7, wherein: theautomation server receives the deployment instructions; and thedeployment instructions cause the automation server to deploy the codeon the first server without further action by the user.
 13. At least onenon-transitory computer-readable storage media havingcomputer-executable instructions embodied thereon for deploying code toa server, wherein when executed by at least one processor, thecomputer-executable instructions cause the processor to: receive a voiceinput from a user computing device, wherein the voice input includes atleast one user command, wherein the user command contains userinstructions for deploying code to a first server; extract the usercommand from the voice input; generate deployment instructions based onthe user command, wherein the deployment instructions arecomputer-executable instructions for causing the deployment of the codeon the first server; transmit the deployment instructions to anautomation server; receive application response data from the automationserver, wherein the application response data includes server statusdata associated with the first server; in response to receiving theapplication response data, automatically generate revisedcomputer-executable instructions for causing the deployment of the codeto a second server by applying a trained decision model to theapplication response data, wherein the trained decision model is trainedusing (i) machine learning techniques and (ii) previous user responsedata, wherein the previous user response data include responses from theuser to previous application response data; and transmit the revisedinstructions to the automation server.
 14. The computer-readable storagemedia of claim 13, wherein the computer-executable instructions furthercause the processor to: generate a notification requesting a responsefrom a user; transmit the notification to a user computing device;receive a user response in the form of user response data from the usercomputing device; and generate the revised instructions causing thedeployment of the code on the second server based on the applicationresponse data and user response data.
 15. The computer-readable storagemedia of claim 14, wherein the computer-executable instructions furthercause the processor to: update the trained decision model, using themachine learning techniques, based on the user response data.
 16. Thecomputer-readable storage media of claim 13, wherein thecomputer-executable instructions further cause the processor to:generate third party application instructions based on the user command,wherein the third party application instructions are computer-executableinstructions for causing some action within a third party softwareapplication; and transmit the third party application instructions to athird party application server.
 17. The computer-readable storage mediaof claim 13, wherein the computer-executable instructions further causethe processor to: receive, by the automation server, the deploymentinstructions; and cause, via the deployment instructions, the automationserver to deploy the code on the first server without further action bythe user.